﻿namespace Tszy.Unlimited.Base.Infrastructure.Logging;

/// <summary>
/// 日志记录器。
/// </summary>
public interface ILogger
{
    /// <summary>
    /// 调试。
    /// </summary>
    /// <param name="message">日志信息。</param>
    /// <param name="exception">异常信息。</param>
    void Debug(string message, Exception? exception = null);

    /// <summary>
    /// 信息。
    /// </summary>
    /// <param name="message">日志信息。</param>
    /// <param name="exception">异常信息。</param>
    void Information(string message, Exception? exception = null);

    /// <summary>
    /// 警告。
    /// </summary>
    /// <param name="message">日志信息。</param>
    /// <param name="exception">异常信息。</param>
    void Warning(string message, Exception? exception = null);

    /// <summary>
    /// 错误。
    /// </summary>
    /// <param name="message">日志信息。</param>
    /// <param name="exception">异常信息。</param>
    void Error(string message, Exception? exception = null);

    /// <summary>
    /// 致命错误。
    /// </summary>
    /// <param name="message">日志信息。</param>
    /// <param name="exception">异常信息。</param>
    void Fatal(string message, Exception? exception = null);
}
